package org.common.strategy2;

import org.springframework.beans.factory.InitializingBean;

/**
 * ClassName: StrategyFactory
 * Package: org.common.strategy
 * Description:
 *
 * @Author: @weixueshi
 * @Create: 2024/7/19 - 21:37
 * @Version: v1.0
 */

/**
 * 抽象类策略工厂
 */
public abstract class AbstractStrategyFactory implements InitializingBean {
    /**
     * 获取支付策略
     * @param payType 支付类型
     * @return 支付策略
     */
    public void pay(String payType){
        throw new UnsupportedOperationException();
    }

    /**
     * 支付宝可以实现自己其他的逻辑
     */
    public String payMethod(String payType){
        throw new UnsupportedOperationException();
    }

    /**
     * 微信可以实现自己其他的逻辑
     */
    public String wxMethod(String payType){
        throw new UnsupportedOperationException();
    }

    protected void initResource(){
        System.out.println("初始化资源");
    }

    //留给子类实现
    public abstract String invokeCommon();
}
